package org.networking.tcp.oneToOne;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
	public static void main(String[] args) throws IOException {
		ServerSocket server = new ServerSocket(888);//创建服务端套接字
		System.out.println("服务器启动，等待连接——"+server);
		int n = 1;
		while(true){
			Socket socket = server.accept();//处于阻塞状态，等待请求连接
			
			//InputStreamReader 是从字节流到字符流的桥梁：它读取字节，并使用指定的charset将其解码为字符。
			InputStreamReader reader = new InputStreamReader(socket.getInputStream());
			
			//BufferedReader 从字符输入流读取文本，缓冲字符，以提供字符、数组和行的高效读取。
			BufferedReader buffer_reader = new BufferedReader(reader);
			
			//PrintWriter 向文本输出流打印对象的格式化表示形式。此类实现了在PrintStream中的所有print方法。
			PrintWriter writer = new PrintWriter(socket.getOutputStream());
			
			String request = buffer_reader.readLine();//读取一行字
			
			System.out.println("客户端"+ n++ +"的请求是：" + request);
			String line = "服务器端的回应：hello,world";
			System.out.println(line);
			
			writer.println(line);
			writer.flush(); //刷新流
			writer.close();//关闭流，并释放与之关联的任何系统资源
			buffer_reader.close();
		}
	
		
//		socket.close();
//		server.close();
		
	}
}



















